﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGERP_Entidades;
using SIGERP_Negocio;
using System.Data.SqlClient;

namespace SIGERP_Presentacion
{
    public partial class frmCiudad : frmABM
    {
        List<Ciudad> ciudades;
        DataTable dt;

        public frmCiudad()
        {
            base.escribeLabels("Ciudad");
            base.CargarGrilla();
        }

        public override void CargarGrilla()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("Ciudad", typeof(String));
            dt.Columns.Add("Cod.Postal", typeof(int));
            dt.Columns.Add("Provincia", typeof(String));
            dt.Columns.Add("Pais", typeof(String));

            var ciudades = Ciudades.GetAll();
            foreach (Ciudad c in ciudades)
                dt.Rows.Add(c.ID, c.Descripcion, c.cod_postal, c.provincia.ToString(), c.provincia.pais.ToString());
            Grilla.DataSource = dt;

            Grilla.Columns[0].Visible = false;
        }

        public override void agregar()
        {
            frmCiudadAgregar frm = new frmCiudadAgregar();
            if (frm.ShowDialog() == DialogResult.OK) CargarGrilla();
            frm.Dispose();
            CargarGrilla();
        }

        public override void eliminar()
        {
            if (Grilla.SelectedRows.Count == 1)
            {
                if (MessageBox.Show("¿Desea dar de baja el registro seleccionado?", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    Ciudad c = new Ciudad();
                    c.ID = Convert.ToInt32(Grilla.SelectedRows[0].Cells["Id"].Value);
                    Ciudades.Baja(c);
                    CargarGrilla();
                }
            }
        }

        public override void busqueda()
        {
            foreach (Ciudad c in ciudades)
            {
                if (c.Descripcion.ToUpper().StartsWith(txtPais.Text.ToUpper()))
                    dt.Rows.Add(c.ID, c.Descripcion, c.cod_postal, c.provincia.Descripcion);
            }
        }

        public override void editar()
        {
            if (Grilla.SelectedRows.Count == 1)
            {
                int id = Convert.ToInt32(Grilla.SelectedRows[0].Cells["Id"].Value);
                Ciudades ciudades = new Ciudades();

                frmCiudadActualizar frm = new frmCiudadActualizar(Ciudades.GetOne(id));
                if (frm.ShowDialog() == DialogResult.OK) CargarGrilla();
                frm.Dispose();
                CargarGrilla();
            }
        }

        private void frmCiudad_Load(object sender, EventArgs e)
        {

        }
    }
}
